/***********************************************************************************
 * 文件名： mcu_spi.h
 * 作者： 黄均铭
 * 版本： 1
 * 说明：
 * 		SPI驱动。
 * 修改记录：
 * 	2024年1月8日: 初版。 黄均铭。
 ***********************************************************************************/

#ifndef _MCU_SPI_H_
#define _MCU_SPI_H_

#include "mcu.h"

// APIs

// SPI初始化
// 不包含IO口初始化
void Spi_Init(void);

// SPI数据传送
bool Spi_Trans(u8* r_buff, const u8* t_buff, size_t len);

// SPI发送函数 - 阻塞
bool Spi_SendSync(const u8* t_buff, size_t len);

// SPI忙标记 1:正在发送/接收或者发送FIFO非空
#define Spi_GetBSY() (SSP->STAT & SSP_STAT_BSY_Msk)

// 发送FIFO已空标记 1:已空
#define Spi_GetTFE() (SSP->STAT & SSP_STAT_TFE_Msk)

// 发送FIFO未满标记 1:未满
#define Spi_GetTNF() (SSP->STAT & SSP_STAT_TNF_Msk)

// 接收FIFO非空标记 1:非空
#define Spi_GetRNE() (SSP->STAT & SSP_STAT_RNE_Msk)

#endif
